// Object.defineProperties( object, properties )
// 作用: 批量为指定对象(object)定义或配置属性
// 返回: 返回定义了新属性或配置了原有属性的对象(即defineProperty函数的第一个参数对应的对象)

const x = new Object();

const properties = {
    id: { value: 1001, enumerable: true, writable: true, configurable: true },
    name: { value: '陈爽爽', enumerable: true, writable: true, configurable: true },
    age: { value: 16, enumerable: true, writable: true, configurable: true }
}

const y = Object.defineProperties( x, properties );
console.log( x );
console.log( y === x );

// Object.getOwnPropertyDescriptors( object )
// 作用: 获得指定对象(object)的所有自有属性的描述符
// 返回: 返回指定对象所有自有属性的描述符组成的数组
const descriptors = Object.getOwnPropertyDescriptors( x );
console.log( descriptors );